home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 58 / pcpp58a.iso / extras / quake 3 source / Q3A_ToolSource.exe / Main / IPluginEntities.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-01-02  |  2.5 KB  |  84 lines

  1. //-----------------------------------------------------------------------------
  2. //
  3. // $LogFile$
  4. // $Revision: 1.1.1.4 $
  5. // $Author: ttimo $
  6. // $Date: 2000/01/18 00:17:12 $
  7. // $Log: IPluginEntities.h,v $
  8. // Revision 1.1.1.4  2000/01/18 00:17:12  ttimo
  9. // merging in for RC
  10. //
  11. // Revision 1.3  2000/01/17 23:53:42  TBesset
  12. // ready for merge in sourceforge (RC candidate)
  13. //
  14. // Revision 1.2  2000/01/07 16:40:10  TBesset
  15. // merged from BSP frontend
  16. //
  17. // Revision 1.1.1.3  1999/12/29 18:31:27  TBesset
  18. // Q3Radiant public version
  19. //
  20. // Revision 1.1.1.1.2.1  1999/12/29 21:39:35  TBesset
  21. // updated to update3 from Robert
  22. //
  23. // Revision 1.1.1.3  1999/12/29 18:31:27  TBesset
  24. // Q3Radiant public version
  25. // Revision 1.1.1.3  1999/12/29 18:31:27  TBesset
  26. // Q3Radiant public version
  27. //
  28. // Revision 1.2  1999/11/22 17:46:45  Timo & Christine
  29. // merged EARadiant into the main tree
  30. // bug fixes for Q3Plugin / EAPlugin
  31. // export for Robert
  32. //
  33. // Revision 1.1.2.1  1999/11/03 20:37:59  Timo & Christine
  34. // MEAN plugin for Q3Radiant, alpha version
  35. //
  36. //
  37. // DESCRIPTION:
  38. // _QERPluginEntitiesTable is used by plugins for various plugin entities commands
  39. // _QERPlugEntitiesFactory is a set of commands Radiant uses to instanciate plugin entities
  40. // next are basics for plugin entities ( interfaces )
  41.  
  42. #ifndef __IPLUGINENTITIES_H_
  43. #define __IPLUGINENTITIES_H_
  44.  
  45. // define a GUID for this interface so plugins can access and reference it
  46. // {9613F500-8C7C-11d3-8EF3-C9EB56B6B7BE}
  47. static const GUID QERPluginEntitiesTable_GUID = 
  48. { 0x9613f500, 0x8c7c, 0x11d3, { 0x8e, 0xf3, 0xc9, 0xeb, 0x56, 0xb6, 0xb7, 0xbe } };
  49.  
  50. typedef int (WINAPI* PFN_ECLASSSCANDIR)    ( char*, HMODULE );
  51.  
  52. struct _QERPluginEntitiesTable
  53. {
  54.     int m_nSize;
  55.     PFN_ECLASSSCANDIR    m_pfnEClassScanDir;
  56. };
  57.  
  58. // plugin entities
  59. class IPluginEntity
  60. {
  61. public:
  62.     // Increment the number of references to this object
  63.     virtual void IncRef () = 0;
  64.     // Decrement the reference count
  65.     virtual void DecRef () = 0;
  66.     // getting bounds of the brush used to select/move the object
  67.     virtual void GetBounds( vec3_t mins, vec3_t maxs ) = 0;
  68.     // rendering the object in the camera view
  69.     virtual void CamRender() = 0;
  70. };
  71.  
  72. // {DBC6B300-8E4B-11d3-8EF3-BA5E57D56399}
  73. static const GUID QERPlugEntitiesFactory_GUID = 
  74. { 0xdbc6b300, 0x8e4b, 0x11d3, { 0x8e, 0xf3, 0xba, 0x5e, 0x57, 0xd5, 0x63, 0x99 } };
  75.  
  76. typedef IPluginEntity * (WINAPI* PFN_CREATEENTITY) ( eclass_t *, IEpair * );
  77.  
  78. struct _QERPlugEntitiesFactory
  79. {
  80.     int m_nSize;
  81.     PFN_CREATEENTITY    m_pfnCreateEntity;
  82. };
  83.  
  84. #endif